/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.pbs.factory;

import br.com.pbs.daos.AlunoDao;
import br.com.pbs.daos.EnderecoDao;
import br.com.pbs.daos.PessoaDao;
import br.com.pbs.daos.PessoaFisicaDao;
import br.com.pbs.daos.PessoaJuricaDAO;
import br.com.pbs.daos.ProfessorDao;
import br.com.pbs.daos.ResponsavelDao;
import br.com.pbs.facades.FacadeAluno;
import br.com.pbs.facades.FacadePessoa;
import br.com.pbs.facades.FacadePessoaFisica;
import br.com.pbs.facades.FacadePessoaJuridica;
import br.com.pbs.facades.FacadeResponsavel;
import br.com.pbs.interfaces.IEnderecoDao;
import br.com.pbs.interfaces.IFacadePessoa;
import br.com.pbs.interfaces.IFactoryPessoa;
import br.com.pbs.interfaces.IPessoaDao;
import br.com.pbs.interfaces.IStrategy;
import br.com.pbs.strategy.Strategy;

/**
 *
 * @author Luiz Segundo
 */
public class Factory implements IFactoryPessoa {

        public IPessoaDao getPessoaDao() {
                return new PessoaDao();
        }

        public IFacadePessoa getFacadePessoa() {
                return FacadePessoa.getInstance();
        }

        public IPessoaDao getPessoaJuridicaDao() {
                return new PessoaJuricaDAO();
        }

        public IPessoaDao getPessoaFisicaDao() {
                return new PessoaFisicaDao();
        }

        public IFacadePessoa getFacadePessoaFisica() {
                return FacadePessoaFisica.getInstance();
        }

        public IFacadePessoa getFacadePessoaJuridica() {
                return FacadePessoaJuridica.getInstance();
        }

        public IStrategy geStrategy() {
                return Strategy.getInstance();
        }

        public IFacadePessoa getFacadeAluno() {
                return FacadeAluno.getInstance();
        }

        public IFacadePessoa getFacadeResponsavel() {
                return FacadeResponsavel.getInstance();
        }

        public IPessoaDao getAlunoDao() {
                return new AlunoDao();
        }

        public IPessoaDao getResponsavelDao() {
                return new ResponsavelDao();
        }

        public IEnderecoDao getEnderecoDao() {
                return new EnderecoDao();
        }

        public IPessoaDao getProfessorDao() {
                return new ProfessorDao();
        }
}
